home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1996 September / JCSM Shareware Collection (JCS Distribution) (September 1996).ISO / prgtools / pbvl010.zip / SPOOLER.BAS < prev    next >
BASIC Source File  |  1994-02-10  |  3KB  |  115 lines

  1. '┌─────────────────────────────────────────────────────────────────────────┐
  2. '│    FILE: SPOOLER.BAS                                                    │
  3. '│ PURPOSE: PB/VISION(tm) LITE Example Program                             │
  4. '├─────────────────────────────────────────────────────────────────────────┤
  5. '│ PURPOSE: Demonstrates how the "TimerInstallCode()" routine can be used  │
  6. '│          as the engine for a printer spooler.                           │
  7. '├─────────────────────────────────────────────────────────────────────────┤
  8. '│ For instant help on any PB/VISION(tm) keyword, place the cursor on that │
  9. '│ keyword and press <CTRL-F1>.  The PB/VISION(tm) index can be accessed   │
  10. '│ by pressing <SHIFT-F1> twice.  The file "PBVLITE.PBH" _must_ be in the  │
  11. '│ same directory as the PowerBASIC IDE (PB.EXE) for this feature to work  │
  12. '│ properly.                                                               │
  13. '└─────────────────────────────────────────────────────────────────────────┘
  14.  
  15. '       ==================================================
  16. '    BE SURE TO RUN "DEMO.EXE" FOR INFORMATION ON OTHER
  17. '       PowerBASIC 3.0 TOOLS FROM DSE SOFTWARE PUBLISHING.
  18. '       ==================================================
  19.  
  20. %ISPBU = 0
  21.  
  22. $INCLUDE ".\WINDOW.BI"
  23. $INCLUDE ".\EVENT.BI"
  24. $INCLUDE ".\MOUSE.BI"
  25.  
  26.     $STACK 8192
  27.  
  28.     DEFINT A-Z
  29.     $DYNAMIC
  30.  
  31.     %EndOfFile = 1001
  32.  
  33.     SHARED SH%, A, B, C, D, SpoolFile
  34.  
  35.     SPOOLER.INIT        ' initialize the demo interface
  36.     SPOOLER.RUN        ' run the interface
  37.     SPOOLER.DONE        ' terminate program
  38.  
  39.     END
  40.  
  41. SUB SPOOLER.INIT
  42.  
  43.     filename$ = COMMAND$        ' read file name from command line
  44.  
  45.     IF LEN(filename$) = 0 THEN
  46.         CLS
  47.         PRINT "Syntax: SPOOL filename.txt
  48.         END
  49.     ELSE
  50.             SpoolFile = FREEFILE
  51.         OPEN filename$ FOR INPUT AS SpoolFile
  52.     END IF
  53.  
  54.     app.GraphicsMouse = 1
  55.     app.GraphicsMode = 1
  56.  
  57.     APPTITLE &H70, "SPOOLER.BAS - HOW TO DO PRINT SPOOLING FROM PB/VISION(tm)
  58.  
  59.     APPINIT
  60.  
  61.     GottaMouse% = MOUSEINIT(buttons%)    ' initizlize mouse
  62.     MOUSECURSORON                         ' turn it on
  63.  
  64.     A = WINPOPUP (3,  5, 10, 40, &H9F, 1, &H9F, "SPOOLER.BAS", &HE0, %DRAGBAR OR %SHADOW)
  65.     B = WINPOPUP (5, 10, 10, 40, &HA7, 1, &HA8, "SPOOLER.BAS", &HCF, %DRAGBAR OR %SHADOW)
  66.     C = WINPOPUP (7, 15, 10, 40, &HF1, 1, &HF1, "SPOOLER.BAS", &H9F, %DRAGBAR OR %SHADOW)
  67.     D = WINPOPUP (9, 20, 10, 40, &HCF, 1, &HCF, "SPOOLER.BAS", &HB0, %DRAGBAR OR %SHADOW)
  68.  
  69.     WINWRITELN D, "Spooling " + filename$
  70.  
  71.     TIMERINSTALLCODE CODESEG(SpoolRoutine), CODEPTR(SpoolRoutine)
  72.  
  73. END SUB
  74.  
  75. SUB SPOOLER.RUN
  76.  
  77.     DO
  78.         eventNo = GetEvent(0)
  79.  
  80.         SELECT CASE eventNo
  81.  
  82.             CASE 102
  83.                 CLOSE #SpoolFile
  84.                 EXIT SUB
  85.  
  86.             CASE %EndOfFile
  87.                 WINWRITELN D, "End of file"
  88.                 TIMERINSTALLCODE 0, 0
  89.                 CLOSE #SpoolFile
  90.  
  91.         END SELECT
  92.  
  93.     LOOP
  94.  
  95. END SUB
  96.  
  97. SUB SPOOLER.DONE
  98.     MOUSECURSOROFF
  99.     APPCLOSE
  100.     END
  101. END SUB
  102.  
  103. FUNCTION SpoolRoutine% (BYVAL UpdateOk%) PUBLIC
  104.  
  105.     IF EOF(SpoolFile) THEN
  106.         SpoolRoutine = %EndOfFile
  107.         EXIT FUNCTION
  108.     END IF
  109.  
  110.     LINE INPUT #SpoolFile, text$
  111.  
  112.     LPRINT text$
  113.  
  114. END FUNCTION
  115.